function executeJs() {

    var donghuan = {

        id: [3, 4, 1326],
        result: {},
        getData: function () {
            var resultStr, requestUrl = 'http://localhost:54188/js/v1/api/donghuan', request = $CurlHttpRequest;

            // 发起请求并获取数据
            resultStr = request.get(requestUrl);
            var jsonString = resultStr.match(/\[.*\]/)[0];

            // 解析 JSON 数据
            var data = JSON.parse(jsonString);

            // 分析数据
            this.pathDada(data);
        },
        // 对 data 进行分析，拿到需要的数据
        pathDada: function (data) {
            var self = this;

            // 筛选目标节点
            var targetNodes = data.filter(function (item) {
                return self.id.indexOf(item.id) !== -1;
            });

            // 遍历目标节点并查找子节点
            targetNodes.forEach(function (node) {
                // 查找 ParentID 为当前节点 ID 且 SUBTYPE 为 17（温湿度）的子节点
                var children = data.filter(function (item) {
                    return item.ParentID === node.id && item.SUBTYPE === "17";
                });

                // 添加 children 属性到节点
                node.children = children;

                // 保存到结果中
                self.result[node.id] = node;
            });
        },
        // 获取温湿度数据并计算平均值
        getHumiture: function () {
            var self = this;
            var request = $CurlHttpRequest;
            var requestUrlBase = 'http://localhost:54188/js/v1/api/donghuan/ip?ip=';

            // 遍历结果中的所有节点
            Object.keys(self.result).forEach(function (key) {
                var node = self.result[key];

                // 遍历节点的 children 数组
                node.children.forEach(function (child) {
                    if (child.IP) {
                        // 拼接 IP 到请求 URL
                        var requestUrl = requestUrlBase + child.IP;

                        // 获取数据
                        var responseStr = request.get(requestUrl);
                        var humitureData = JSON.parse(responseStr);

                        // 计算温度和湿度的平均值
                        var temperatureValues = humitureData
                            .filter(function (item) {
                                return item.subName.includes("温度");
                            })
                            .map(function (item) {
                                return parseFloat(item.value);
                            });

                        var humidityValues = humitureData
                            .filter(function (item) {
                                return item.subName.includes("湿度");
                            })
                            .map(function (item) {
                                return parseFloat(item.value);
                            });

                        var avgTemperature =
                            temperatureValues.reduce((a, b) => a + b, 0) / temperatureValues.length || 0;

                        var avgHumidity =
                            humidityValues.reduce((a, b) => a + b, 0) / humidityValues.length || 0;

                        // 添加平均值到 child
                        child.avgTemperature = avgTemperature.toFixed(2);
                        child.avgHumidity = avgHumidity.toFixed(2);
                    }
                });
            });
        }
    };

    try {
        donghuan.getData();
        donghuan.getHumiture();
        return JSON.stringify(donghuan.result);
    } catch (error) {
        return $Result.error(error.message || "An error occurred");
    }
}

executeJs();
